import axios from 'axios'
import md5 from 'js-md5'
import { config } from "@/config/config"

/**
 * 返回状态处理
 */
function checkStatus(response) {
	if (response.status === 200 || response.status === 304) {
		return response
	}
	return {
		data: {
			code: -404,
			message: response.statusText,
			data: ''
		}
	}
}

function checkCode(res) {
	return res
}

/**
 * md5 生成hash码
 * 规则: JSON.stringify(param) + '123456' 作为参数传入
 * param： 包括token对象和body对象 
 */
function md5Hash(param) {
	return md5(JSON.stringify(param) + config.md5str)
}

/**
 * 公共请求类
 * isRequireToken false or true 是否需要token
 * withCredentials: 接口是否需要携带用户凭证cookie等信息
 * timeout: 30000 超时时间
 */
export default {
	post(url, param) {
		return axios({
			method: 'post',
			url: url,
			data: `data=${JSON.stringify(param)}&paramsMD5=${md5Hash(param)}`,
			timeout: config.timeout,
			withCredentials: false,
			headers: {
				'Content-Type': 'application/x-www-form-urlencoded;'
			}
		})
	},
	get(url, param) {
		return axios({
			method: 'get',
			url: url,
			data: {
				data: JSON.stringify(param),
				paramsMD5: md5Hash(param)
			},
			timeout: config.timeout,
			withCredentials: false,
			headers: {
				'Content-Type': 'application/x-www-form-urlencoded;'
			}
		})
	}
}
